home *** CD-ROM | disk | FTP | other *** search
/ Windows 6-Pak - Disc 4 / Windows 6-Pak (InfoMagic) (Disc 4) (1999).ISO / Text-Chat-Addins / C-Script.exe / Sysfiles / Aliases / toola.mrc < prev   
Encoding:
Text File  |  1998-05-14  |  26.0 KB  |  549 lines

  1. ;C-Script v5.0 ⌐ 1998 C-Team. All rights reserved.
  2. ;Configure at your own risk
  3. ;CussKick, Channel Re-Join, Nick Complete, Spell Checker, Version Checker, Panic,
  4. ;Addons, Script aliases
  5.  
  6. ;==========
  7. ;CussKick
  8. ;==========
  9.  
  10. cusswords {
  11.   if ($1 == $null) { echo -a  $+ $clr(info2) $+ *** Syntax: /cusswords [-l $chr(124) -a <word/phrase> $chr(124) -r <word/phrase>] -l = List -a = Add -r = Remove | halt }
  12.   if ($1 == -l) {
  13.     if (%ckickg == off || $group(#floodpro) == off && %tmp.cusslist.l == $null) { echo  $+ $clr(info) $+ *** Note: The CussKick is currently Off. To enable it go to MenuBar (å C-Script å) -> Settings/Prot -> Protection -> Text Protection and make sure at least one of the Text Protection Modes is on, and the CussKick Section is On. }
  14.     cusslist
  15.   }
  16.   if ($1 == -a) {
  17.     if ($2 == $null) { echo -a  $+ $clr(info) $+ *** Syntax: /cusswords -a <word/phrase> | halt }
  18.     if (%ckickg == off || $group(#floodpro) == off && %tmp.cusslist.l == $null) { echo -a  $+ $clr(info) $+ *** Note: The CussKick is currently Off. To enable it go to MenuBar (å C-Script å) -> Settings/Prot -> Protection -> Text Protection | set %tmp.cusslist.l yes | .timer 1 20 unset %tmp.cusslist.l }
  19.     if ($chr(44) $+ $2- $+ $chr(44) isin %cusswords) { echo 4 %tmp.cwle  $+ $2- $+  is already in the CussWords list! | halt }
  20.     set %tmp.cwa $2-
  21.     set %tmp.cwa %tmp.cwa $+ $chr(44)
  22.     set %cusswords %cusswords $+ %tmp.cwa
  23.     echo -a  $+ $clr(info) $+ *** $2- has been added to the CussWords list. Type /cusslist to see
  24.     if ($window(@CussWord-List) != $null) { cusslist }
  25.     halt
  26.   }
  27.   if ($1 == -r) {
  28.     if ($2- == $null) { echo -a  $+ $clr(info2) $+ *** Syntax: /cusswords -r <word/phrase> | halt }
  29.     if (%ckickg == off || $group(#floodpro) == off && %tmp.cusslist.l == $null) { echo -a  $+ $clr(info) $+ Note: The CussKick is currently Off! To enable it go to MenuBar (å C-Script å) -> Settings/Prot -> Protection -> Text Protection | set %tmp.cusslist.l yes | .timer 1 20 unset %tmp.cusslist.l }
  30.     if ($chr(44) $+ $2- $+ $chr(44) !isin %cusswords) { echo -a  $+ $clr(info) $+ $2- is not in the CussWords list | halt }
  31.     set %tmp.cwa $2-
  32.     set %tmp.cwa $chr(44) $+ %tmp.cwa $+ $chr(44)
  33.     set %cusswords $replace(%cusswords,%tmp.cwa,$chr(44))
  34.     echo -a  $+ $clr(info) $+ *** $2- has been removed to the CussWords list. Type /cusslist to see
  35.     if ($window(@CussWord-List) != $null) { cusslist }
  36.     halt
  37.   }
  38.   echo -a  $+ $clr(info2) $+ Syntax: /cusswords [-l $chr(124) -a <word/phrase> $chr(124) -r <word/phrase>] -l = List -a = Add -r = Remove
  39.   halt
  40. }
  41. cusslist {
  42.   wincheck @CussWord-List -l @CussWord-List $center(160,220,@CussWord-List) $wh(160,220,@CussWord-List) @CussWord-List comic sans ms 12
  43.   .timer 1 1 if $window(@CussWord-List) != $null { window -b @CussWord-List }
  44.   set %tmp.csk $count(%cusswords,$chr(44))
  45.   set %tmp.csk2 1
  46.   :loop
  47.   if (%tmp.csk2 == %tmp.csk) { goto end }
  48.   aline @CussWord-List  $+ $clr(info) $+ $gettok(%cusswords,%tmp.csk2,44)
  49.   inc %tmp.csk2
  50.   goto loop
  51.   :end
  52.   halt
  53. }
  54.  
  55. ;==========
  56. ;Channel rejoin on connect
  57. ;==========
  58.  
  59. chancheck {
  60.   if (%chanrejoin != on) { timer734 off | halt }
  61.   set %ccserverc $count($server,.) $+ -
  62.   set %ccserver $gettok($server,%ccserverc,46)
  63.   set %ccchns $chan(0)
  64.   set %cccnt 0
  65.   :loop
  66.   inc %cccnt
  67.   if (%cccnt > %ccchns) { goto done }
  68.   set %ccrj [ $+ [ %cccnt ] ] $chan(%cccnt)
  69.   goto loop
  70.   :done
  71. }
  72. crjsw yesno 'crjs' 'crjsws' 'Do you wish to Re-Join all channels you were on before being disconnected?'
  73. crjsws if %chanrejoin == on { .timer734 0 10 chancheck }
  74. crjs {
  75.   set %cccnt2 0
  76.   :loop
  77.   inc %cccnt2
  78.   if (%cccnt2 > %ccchns) { goto done }
  79.   if (%ccrj [ $+ [ %cccnt2 ] ] != $null) { join %ccrj [ $+ [ %cccnt2 ] ] }
  80.   goto loop
  81.   :done
  82.   set %crchn N
  83.   unset %ccrj*
  84.   if (%chanrejoin == on) { .timer734 0 10 chancheck }
  85. }
  86.  
  87. ;==========
  88. ;Nick Complete
  89. ;==========
  90.  
  91. nctype {
  92.   wincheck @NickCompleteáSetup -l +ntb @NickCompleteáSetup $center(315,260,@NickCompleteáSetup) 315 260 @NickCompleteáSetup Courier New 11
  93.   aline @NickCompleteáSetup  $+ $clr(info) ááááááááSelect NickComplete Method
  94.   aline @NickCompleteáSetup Nick (Normal)
  95.   aline @NickCompleteáSetup Nick: (Normal with ":")
  96.   aline @NickCompleteáSetup Nick (All bold)
  97.   aline @NickCompleteáSetup Nick: (All bold with ":")
  98.   aline @NickCompleteáSetup Nick (All underlined)
  99.   aline @NickCompleteáSetup Nick: (All underlined with ":")
  100.   aline @NickCompleteáSetup Nick (First and last letter bold)
  101.   aline @NickCompleteáSetup Nick: (First and last letter bold with ":")
  102.   aline @NickCompleteáSetup $ifct(Nick) $+ : (Special 1)
  103.   aline @NickCompleteáSetup $iascii(Nick) $+ : (Special 2)
  104.   aline @NickCompleteáSetup $ibw(Nick) $+ : (Special 3)
  105.   aline @NickCompleteáSetup $irw(Nick) $+ : (Special 4)
  106.   aline @NickCompleteáSetup $ibg(Nick) $+ : (Special 5)
  107.   aline @NickCompleteáSetup $ibrg(Nick) $+ : (Special 6)
  108.   aline @NickCompleteáSetup 12N4ic12k: (Special 7)
  109. }
  110. nctp {
  111.   if ($sline(@NickCompleteáSetup,1).ln == 1) { halt }
  112.   else { set %nctp $sline(@NickCompleteáSetup,1).ln }
  113.   window -c @NickCompleteáSetup
  114.   echo -a  $+ $clr(info2) $+ *** NickComplete - Input: [part of nick] %nckeywrd [text] Output: $nct(Nick)  $+ $clr(info2) $+ [text]
  115. }
  116. ncsln {
  117.   if ($sline(@NickComplete,1).ln == 1) { halt }
  118.   else { msg %ncact $nct($sline(@NickComplete,1)) %ncmsg }
  119.   window -c @NickComplete
  120. }
  121. ncs2ln {
  122.   if ($sline(@NickáComplete,1).ln == 1) { halt }
  123.   else {
  124.     set %tmp.nci3 $sline(@NickáComplete,1)
  125.     if (%tmp.nci.c == 1) { editbox %tmp.ncwin1 %tmp.nci3 }
  126.     elseif (%tmp.nci.c == 2) { editbox %tmp.ncwin1 %tmp.nci2 $+ $chr(32) $+ %tmp.nci3 }
  127.   }
  128.   window -c @NickáComplete
  129. }
  130.  
  131. ;==========
  132. ;Spell Checker
  133. ;==========
  134.  
  135. spell {
  136.   if ($1 == $null) { set %spelltmp1 $?="Check Spelling on:" | set %spelltmp2 $ispell(%spelltmp1) }
  137.   else { set %spelltmp1 $1- | set %spelltmp2 $ispell($1-) }
  138.   set %spltmpt 0
  139.   :next
  140.   inc %spltmpt
  141.   if ($gettok(%spelltmp1,%spltmpt,32) == $null) { goto done }
  142.   if ($gettok(%spelltmp1,%spltmpt,32) != $gettok(%spelltmp2,%spltmpt,32)) {
  143.     set %tmp 1 | echo  $+ $clr(info) $+ *** Spell Check - Word: $gettok(%spelltmp1,%spltmpt,32) Result: $gettok(%spelltmp2,%spltmpt,32)
  144.   }
  145.   goto next
  146.   :done
  147.   if (%tmp == $null) && ($gettok(%spelltmp1,1,32) != $gettok(%spelltmp2,1,32)) { echo  $+ $clr(info) $+ *** Spell Check - Word:  $gettok(%spelltmp1,1,32) Result:  $gettok(%spelltmp2,1,32) }
  148.   if (%tmp == $null) && ($gettok(%spelltmp1,1,32) == $gettok(%spelltmp2,1,32)) { echo  $+ $clr(info) $+ *** Spell Check - No corrections for %spelltmp1 }
  149.   unset %spelltmp*
  150.   unset spltmpt %tmp
  151. }
  152.  
  153. ;==========
  154. ;Version Checker
  155. ;==========
  156.  
  157. vercheck { 
  158.   if (%curver2 == $null) {
  159.     .enable #vercheck
  160.     sockopen vercheck www.c-script.com 80
  161.     goto final
  162.   } 
  163.   if (%curver2 != %wpver) { wincheck @vercheck -a @VerCheck $center(400,120,@vercheck) $wh(400,120,@vercheck) Arial 11 | vecho2 You do not have the most recent version of C-Script, which is %curver2 $+ . %GETLT2 | vecho2 %curnews }
  164.   elseif (%curver2 == %wpver) { if (%verc.sil != $null) { unset %verc.sil } | else { vecho Congratulations, you have the latest version of C-Script } }
  165.   unset %curver2 | unset %curnews
  166.   :final
  167. }
  168. vecho echo -a  $+ $clr(info) $+ *** %WSVN $1-
  169. vecho2 echo @VerCheck  $+ $clr(info) $+ %WSVN $1-
  170.  
  171. ;==========
  172. ;Panic (resets almost all settings)
  173. ;==========
  174.  
  175. panic {
  176.   wincheck @panic -l +tn @PANIC $center(255,150) 255 150 @PANIC Courier New 12
  177.   aline @PANIC  $+ $clr(highlight) $+ PANIC will completely reset almost
  178.   aline @PANIC  $+ $clr(highlight) $+ every setting and configuration in
  179.   aline @PANIC  $+ $clr(highlight) $+ C-Script.
  180.   aline @PANIC á
  181.   aline @PANIC  $+ $clr(highlight) $+ Are you sure you want to PANIC?
  182.   aline @PANIC  $+ $clr(highlight) $+ $str(-,35)
  183.   aline @PANIC  $+ $clr(highlight) $+ Yes (I need to start over.)
  184.   aline @PANIC  $+ $clr(highlight) $+ Noá (I DIDN'T MEAN TO HIT THAT!)
  185. }
  186. panic-chk {
  187.   if ($sline(@PANIC,1).ln == 7) { window -c @PANIC | panic-now }
  188.   elseif ($sline(@PANIC,1).ln == 8) { window -c @PANIC }
  189.   else { halt }
  190. }
  191. panic-now { reset | resetd }
  192. reset { seenclean | pageclean | recclean | mail.reset | write -c sysfiles\c-script.ini | write -c sysfiles\recent.ini | unset %uworldonk | unset %cservcnk | unset %x | unset %y | unset %x.max | unset %y.max | write -c sysfiles\win.ini | write -c sysfiles\www\settings.ini | writeini sysfiles\www\settings.ini www home www.C-Script.com | unset %picvar | unset %browserdir | unset %usrmodes | set %loadvar 0 | set %setcntdwn 5 | set %verchkcntdwn 30 | set %csmspass "" | set %awayemail N/A | .awayoff | echo -a  $+ $clr(info) $+ *** C-Script's user history cleared successfully }
  193. resetd {
  194.   .awayoff
  195.   .enable #chanstats #errorecho #ialaupd #usermode #WALLOPS #links #nsplit #nc #notify #rawecho #RECORD #SEEN #groupCTCP #CTCPreply #xdcc #addpro #autoapt #recent #autospell #SNOTICE #ctcppro #INVITEfloodpro #nkfloodpro | .disable #autogreet #autotalk #awhois #chanclone #HACKpro #FAKEPING #group7 #FSERV #greet #groupSHOOT #floodpro #mfloodpro #nfloodpro #MAX | set %ctcpbox Off | inctcpwin -c | set %snoticebox On | insnotwin | if ($server != $null) { umode +s } | set %wallopsbox on | .set %stripper off | set %chanrejoin on
  196.   set %idleaway On | set %sounds On | if ($server != $null) { umode +w } | set %identpro On | set %banprot On | .set %csmspass "" | set %motds changes
  197.   set %idletimesec 600 | set %agreetmsg "" | set %fsvkey !FServe | set %fservedir $mircdirfserv | set %nckeywrd : | set %nctp 3 | set %wrecho -s | set %cfldn 4 | set %cfldt $div(12,%cfldn) | set %invfpn 3 | set %invfpt $div(15,%invfpn) | set %nflnm 4 | set %nfltmn $div(8,%nflnm) | set %coltfldg On | set %lengthtfg On | set %rpttg On | set %chntfldg On | set %capskickg On | set %ckickg On | set %lfowlt 25 | set %lfawlt 350 | set %clrflt 5 | set %cfllns 5 | set %cfllps $div(5,%cfllns) | set %prtbntm 10 | set %prtigtm 15 | set %forcemodesison On | set %forcemodes tn | set %disallowmodesison On | set %disallowmodes k | set %hacktoplevel On
  198.   set %massdeop On | set %maxdeops 5 | set %deoptime 5 | titles on | .ignore -r *!*@*
  199.   popchng on 1 | popchng off 2 | popchng on 3 | popchng off 4-6 | popchng on 7-8 | popchng off 9-10 | popchng on 11-15 | popchng off 16-18 | popchng on 19 | popchng off 20 | popchng on 21-27 | popchng off 28 | popchng on 29-35 | popchng off 36 | popchng on 37 | popchng off 38 | popchng on 39 | popchng off 40-42 | popchng on 43-53
  200.   echo  $+ $clr(info) $+ *** Default settings restored successfully (it is recommended that you shut-down mIRC and then re-start)
  201. }
  202.  
  203. ;==========
  204. ;Addons
  205. ;==========
  206.  
  207. addons {
  208.   unset %tmp.adcnt
  209.   unset %tmp.addon.*
  210.   if (($findfile($mircdiraddons\,*.adn,1) == $null) || ($findfile($mircdiraddons\,*.adn,1) == $adn(sample\sample.adn) && $findfile($mircdiraddons\,*.adn,2) == $null)) { echo 12 -a No Add-Ons (*.adn files) were found in $mircdiraddons\ $+ ! | halt }
  211.   else {
  212.     wincheck @Add-Ons -p +f @Add-Ons $center(523,295) 523 295 @Add-Ons comic sans ms 12
  213.     drawfill @Add-Ons 15 15 0 0
  214.     drawrect -f @Add-Ons 2 1 0 0 600 17
  215.     drawtext -o @Add-Ons 0 arial 14 3 1 C-Script Addon Center
  216.     drawx 7 57 80 30 @Add-Ons
  217.     drawx 7 94 80 30 @Add-Ons
  218.     drawx 7 131 80 30 @Add-Ons
  219.     drawx 7 168 80 30 @Add-Ons
  220.     drawtext -o @Add-Ons 5 arial 14 25 22 C-Script
  221.     drawtext -o @Add-Ons 2 arial 14 9 34 Addon Center
  222.     drawtext -o @Add-Ons 1 arial 18 33 63 List
  223.     drawtext -o @Add-Ons 1 arial 18 30 101 Load
  224.     drawtext -o @Add-Ons 1 arial 18 22 137 Unload
  225.     drawtext -o @Add-Ons 1 arial 18 33 174 Info
  226.     drawx 465 2 15 14 @Add-Ons nx | drawx 481 2 15 14 @Add-Ons mxx | drawx 499 2 15 14 @Add-Ons X
  227.     addonlst
  228.   }
  229. }
  230. addonlst {
  231.   window -c @addon.status | set %win.x $window(@Add-Ons).x  | set %win.y $window(@Add-Ons).y
  232.   wincheck @addon.status -l +b @addon.status $calc(%win.x + 95) $calc(%win.y + 22) 425 269 @addon.status arial 12
  233.   .timer 1 1 window -b @addon.status
  234.   set %tmp.adcnt 1
  235.   aline @addon.status Select an AddOn and use the buttons to Load, Unload, or get more info!
  236.   aline @addon.status á
  237.   :loop
  238.   set %tmp.addon.findfile $findfile($mircdiraddons\,*.adn,%tmp.adcnt)
  239.   if (%tmp.addon.findfile == $null) { goto end }
  240.   if (%tmp.addon.findfile == $mircdiraddons\sample\sample.adn) { inc %tmp.adcnt | goto loop }
  241.   set % $+ tmp.addon. [ $+ [ %tmp.adcnt ] ] $nopath(%tmp.addon.findfile)
  242.   set %tmp.addon.l %tmp.addon. [ $+ [ %tmp.adcnt ] ] $+ $chr(160)
  243.   if (%tmp.addon.l isin %addons) { aline @addon.status %tmp.adcnt $+ . $readini -n %tmp.addon.findfile Setup addonname v $+ $readini -n %tmp.addon.findfile Setup addonver by $readini -n %tmp.addon.findfile Setup author < $+ $readini -n %tmp.addon.findfile Setup email $+ > Loaded }
  244.   else { aline @addon.status %tmp.adcnt $+ . $readini -n %tmp.addon.findfile Setup addonname v $+ $readini -n %tmp.addon.findfile Setup addonver by $readini -n %tmp.addon.findfile Setup author < $+ $readini -n %tmp.addon.findfile Setup email $+ > Unloaded }
  245.   inc %tmp.adcnt
  246.   goto loop
  247.   :end
  248. }
  249. addoninfo {
  250.   if ($1 == $null || $1 !isnum) { window -r @addon.status | window -a @addon.status | halt }
  251.   set %tmp.addon.i  [ %tmp.addon. [ $+ [ $1 ] ] ]
  252.   if ($exists($adn(%tmp.addon.i)) == $false) { echo -a  $+ $clr(info) $+ *** AddOn " $+ $1 $+ " not found! Try typing /addons again | halt }
  253.   if ($readini -n $adn(%tmp.addon.i) Setup info == $null) { echo -a  $+ $clr(info) $+ *** No information on Add-On # $+ $1 | halt }
  254.   wincheck @addoninfo @AddonInfo $center(300,100,@addoninfo) $wh(300,100,@addoninfo) @AddonInfo ms sans serif 12
  255.   echo @AddonInfo  $+ $clr(info) $+ $nopath($adn(%tmp.addon.i))
  256.   echo @AddonInfo á
  257.   echo @AddonInfo  $+ $clr(info) $+ $readini -n $adn(%tmp.addon.i) Setup info
  258.   .timer 2 1 window -a @AddonInfo
  259. }
  260. addonl {
  261.   if ($1 == $null || $1 !isnum) { window -r @addon.status | window -a @addon.status | halt }
  262.   set %tmp.addon.l [ %tmp.addon. [ $+ [ $1 ] ] ] $+ $chr(160)
  263.   set %tmp.addon.l2 [ %tmp.addon. [ $+ [ $1 ] ] ]
  264.   if ($exists($adn(%tmp.addon.l2)) == $false) { echo -a  $+ $clr(info) $+ *** Unknown error type /addons again | halt }
  265.   if (%tmp.addon.l isin %addons) { echo -a  $+ $clr(info) $+ *** [ %tmp.addon. [ $+ [ $1 ] ] ] is already loaded | window -r @addon.status | window -a @addon.status | halt }
  266.   set %addons %addons $+ %tmp.addon.l
  267.   .play -sctInstall $adn(%tmp.addon.l2) 0
  268.   addonlst
  269.   .timer 1 1 window -a @AddonáSetup
  270. }
  271. addonu {
  272.   if ($1 == $null || $1 !isnum) { window -r @addon.status | window -a @addon.status | halt }
  273.   set %tmp.addon.d2 [ %tmp.addon. [ $+ [ $1 ] ] ] $+ $chr(160)
  274.   set %tmp.addon.d [ %tmp.addon. [ $+ [ $1 ] ] ]
  275.   set %tmp.addon.d $replace(%tmp.addon.d,.adn,.rem)
  276.   if ($exists($adn(%tmp.addon.d)) == $false) { echo -a  $+ $clr(info) $+ *** Unknown error type /addons again | halt }
  277.   if (%tmp.addon.d2 !isin %addons) { echo -a  $+ $clr(info) $+ *** [ %tmp.addon. [ $+ [ $1 ] ] ] is not loaded | window -r @addon.status | window -a @addon.status | halt }
  278.   set %addons $remove(%addons,%tmp.addon.d2)
  279.   .play -sc $adn(%tmp.addon.d) 0
  280.   addonlst
  281.   .timer 1 1 window -a @AddonáSetup
  282. }
  283.  
  284. ;==========
  285. ;Misc script aliases with short description of each.
  286. ;==========
  287.  
  288. ;Close all specified windows... /closewin @win1 @win2 etc.
  289. closewin {
  290.   set %tmp $1-
  291.   set %tmp.n $gettok(%tmp,0,32)
  292.   set %tmp.l 1
  293.   :loop
  294.   if (%tmp.l > %tmp.n) { goto done }
  295.   window -c $gettok(%tmp,%tmp.l,32)
  296.   inc %tmp.l
  297.   goto loop
  298.   :done
  299. }
  300.  
  301. ;GUI 'yes' and 'no' in picture windows.
  302. yesno {
  303.   if ($1 == $null || $2 == $null || $3 == $null || ' !isin $1-) { echo -a  $+ $clr(info2) $+ Syntax: /yesno 'command for yes' 'command for no' 'yes/no question here' (KEEP THE ' and ') | halt }
  304.   wincheck @yn -p +f @yn $center(243,75,@yn) 243 75 comic sans ms 12
  305.   set %yn.yes $gettok($1-,1,39)
  306.   set %yn.no $gettok($1-,3,39)
  307.   set %yn.que $gettok($1-,5,39)
  308.   drawfill @yn 15 15 0 0
  309.   if ($width(%yn.que,arial,13,0,0) > 287) {
  310.     set %number $calc($mid(%yn.que,49,0) + 49)
  311.     set %yn.que2 $mid(%yn.que,49,%number) | set %yn.que $mid(%yn.que,1,48)
  312.     if ($mid(%yn.que2,1,1) != $chr(32)) && ($right(%yn.que,1) != $chr(32)) {
  313.       inc %number 2 | set %yn.que2 $mid($gettok($1-,5,39),47,%number) | set %yn.que $mid(%yn.que,1,46) $+ -
  314.     }
  315.     drawtext @yn 1 arial 13 1 19 %yn.que
  316.     drawtext @yn 1 arial 13 1 30 %yn.que2
  317.     goto next
  318.   }
  319.   drawtext @yn 1 arial 13 1 19 %yn.que
  320.   :next
  321.   drawrect -f @yn 2 1 0 0 300 17
  322.   drawtext -o @yn 0 arial 14 3 1 C-Script
  323.   drawx 85 50 $calc($width(yes,arial,20,0,0) + 2) 17 @yn Yes
  324.   drawx 130 50 $calc($width(yes,arial,20,0,0) + 2) 17 @yn No
  325.   drawx 219 2 15 14 @yn X
  326.   unset %yn.que %yn.que2 %number
  327. }
  328. ;Draw a button at X Y W H in the specified window.
  329. ;Ex. /drawx <x> <y> <w> <h> <window> [text]
  330. ;Simply put and X for the text and an X will be drawn in the center if the button.
  331. ;Drawx does the same thing accept it draws a button the is inverted (pushed).
  332. drawx {
  333.   set %dr.x $$1 | set %dr.y $$2 | set %dr.w $$3 | set %dr.h $$4
  334.   drawrect $5 15 1 $calc(%dr.x + 1) $calc(%dr.y + 1) $calc(%dr.w - 2) $calc(%dr.h - 2)
  335.   drawline $5 0 1 %dr.x %dr.y %dr.x $calc(%dr.y + %dr.h - 1)
  336.   drawline $5 0 1 %dr.x %dr.y $calc(%dr.x + %dr.w) %dr.y
  337.   drawline $5 14 1 %dr.x $calc(%dr.y + %dr.h - 1) $calc(%dr.x + %dr.w - 1) $calc(%dr.y + %dr.h - 1)  
  338.   drawline $5 14 1 $calc(%dr.x + %dr.w - 1) %dr.y $calc(%dr.x + %dr.w - 1) $calc(%dr.y + %dr.h)  
  339.   drawline $5 1 1 %dr.x $calc(%dr.y + %dr.h) $calc(%dr.x + %dr.w) $calc(%dr.y + %dr.h)
  340.   drawline $5 1 1 $calc(%dr.x + %dr.w) $calc(%dr.y + %dr.h) $calc(%dr.x + %dr.w) $calc(%dr.y - 1)
  341.   if ($6 == nofill) { goto end }
  342.   drawrect -f $5 15 1 $calc(%dr.x + 1) $calc(%dr.y + 1) $calc(%dr.w - 3) $calc(%dr.h - 3)
  343.   if ($6 == x) {
  344.     drawline $5 1 2 $calc(%dr.x + 4) $calc(%dr.y + 3) $calc(%dr.x + 11) $calc(%dr.y + 10)
  345.     drawline $5 1 2 $calc(%dr.x + 11) $calc(%dr.y + 3) $calc(%dr.x + 4) $calc(%dr.y + 10)
  346.   }
  347.   if ($6 == xx) {
  348.     drawline $5 14 2 $calc(%dr.x + 4) $calc(%dr.y + 3) $calc(%dr.x + 11) $calc(%dr.y + 10)
  349.     drawline $5 14 2 $calc(%dr.x + 11) $calc(%dr.y + 3) $calc(%dr.x + 4) $calc(%dr.y + 10)
  350.   }
  351.   if ($6 == mx) {
  352.     drawline $5 1 2 $calc(%dr.x + 4) $calc(%dr.y + 3) $calc(%dr.x + 11) $calc(%dr.y + 3)
  353.     drawline $5 1 1 $calc(%dr.x + 3) $calc(%dr.y + 3) $calc(%dr.x + 3) $calc(%dr.y + 11)
  354.     drawline $5 1 1 $calc(%dr.x + 11) $calc(%dr.y + 3) $calc(%dr.x + 11) $calc(%dr.y + 11)
  355.     drawline $5 1 1 $calc(%dr.x + 4) $calc(%dr.y + 10) $calc(%dr.x + 11) $calc(%dr.y + 10)
  356.   }
  357.   if ($6 == mxx) {
  358.     drawline $5 14 2 $calc(%dr.x + 4) $calc(%dr.y + 3) $calc(%dr.x + 11) $calc(%dr.y + 3)
  359.     drawline $5 14 1 $calc(%dr.x + 3) $calc(%dr.y + 3) $calc(%dr.x + 3) $calc(%dr.y + 11)
  360.     drawline $5 14 1 $calc(%dr.x + 11) $calc(%dr.y + 3) $calc(%dr.x + 11) $calc(%dr.y + 11)
  361.     drawline $5 14 1 $calc(%dr.x + 4) $calc(%dr.y + 10) $calc(%dr.x + 11) $calc(%dr.y + 10)
  362.   }
  363.   if ($6 == nx) {
  364.     drawline $5 1 2 $calc(%dr.x + 4) $calc(%dr.y + 10) $calc(%dr.x + 11) $calc(%dr.y + 10)
  365.   }
  366.   if ($6 == nxx) {
  367.     drawline $5 14 2 $calc(%dr.x + 4) $calc(%dr.y + 10) $calc(%dr.x + 11) $calc(%dr.y + 10)
  368.   }
  369.   elseif ($6 != $null) && ($6 != nx) && ($6 != mx) && ($6 != x) && ($6 != xx) && ($6 != nxx) && ($6 != mxx) {
  370.     drawtext $5 1 arial 15 $calc(%dr.x + 7) $calc(%dr.y + 1) $6
  371.   }
  372.   :end
  373.   unset %dr.*
  374. }
  375. drawx2 {
  376.   set %dr.x $$1 | set %dr.y $$2 | set %dr.w $$3 | set %dr.h $$4
  377.   drawrect $$5 1 1 %dr.x %dr.y %dr.w %dr.h
  378.   drawrect $5 14 1 $calc(%dr.x + 1) $calc(%dr.y + 1) $calc(%dr.w - 2) $calc(%dr.h - 2)
  379.   drawline $5 0 1 $calc(%dr.x + 1) $calc(%dr.y + %dr.h - 1) $calc(%dr.x + %dr.w) $calc(%dr.y + %dr.h - 1)  
  380.   drawline $5 0 1 $calc(%dr.x + %dr.w - 1) $calc(%dr.y + 1) $calc(%dr.x + %dr.w - 1) $calc(%dr.y + %dr.h - 1)  
  381.   unset %dr.*
  382. }
  383.  
  384. ;==========
  385. ;The following is a group of aliases generally not useful to the average user,
  386. ;but neccessary to the script's functionality
  387. ;==========
  388.  
  389. ;Popups
  390. popchng {
  391.   if ($chr(45) isin $$2) { goto multi }
  392.   if ($$1 == on) { set %temp.3 %dp. [ $+ [ $$2 ] ] | if ($left(%temp.3,1) != $chr(43)) { set %dp. $+ $$2 $replace(%temp.3,-,+) } | set %pop. $+ $$2 Off | goto done }
  393.   if ($$1 == off) { set %temp.1 %dp. [ $+ [ $$2 ] ] | if ($left(%temp.1,1) == $chr(43)) { set %dp. $+ $$2 $replace(%temp.1,+,-) } | set %pop. $+ $$2 On | goto done }
  394.   :multi
  395.   if ($$1 == on) {
  396.     set %temp.1 $gettok($$2,1,45)
  397.     set %temp.2 $gettok($$2,2,45)
  398.     :loop1
  399.     if (%temp.1 > %temp.2) { goto done }
  400.     set %pop. $+ %temp.1 Off
  401.     set %temp.4 %dp. [ $+ [ %temp.1 ] ]
  402.     if ($left(%temp.4,1) != $chr(43)) { set %dp. $+ %temp.1 $replace(%temp.4,-,+) }
  403.     inc %temp.1
  404.     goto loop1
  405.   }
  406.   if ($$1 == off) {
  407.     set %temp.1 $gettok($$2,1,45)
  408.     set %temp.2 $gettok($$2,2,45)
  409.     :loop2
  410.     if (%temp.1 > %temp.2) { goto done }
  411.     set %pop. $+ %temp.1 On
  412.     set %temp.3 %dp. [ $+ [ %temp.1 ] ] | if ($left(%temp.3,1) == $chr(43)) { set %dp. $+ %temp.1 $replace(%temp.3,+,-) }
  413.     inc %temp.1
  414.     goto loop2
  415.   }
  416.   :done
  417. }
  418. ;Clone warning
  419. clnwarn {
  420.   set %clnschn $1  
  421.   if ($address($gettok($2-,1,32),2) iswm $address($me,2)) { echo -a  $+ $clr(info) $+ *** C-Script will not warn your own clones | halt }
  422.   if ($clnck($address($gettok($2-,1,32),2),%clnschn) != $null) { echo -a  $+ $clr(info) $+ *** C-Script will not warn clones of ops | halt }
  423.   set %count 0
  424.   :next
  425.   inc %count | if ($gettok($2-,%count,32) == $null) { goto end }
  426.   notice $gettok($2-,%count,32) Cloning in %clnschn is illegal... Remove your clones immediately!
  427.   goto next
  428.   :end
  429. }
  430. ;Clone kicking
  431. clnkick {
  432.   set %clnschn $1
  433.   if ($address($gettok($2-,1,32),2) iswm $address($me,2)) { echo -a  $+ $clr(info) $+ *** C-Script will not kick your own clones | halt }
  434.   if ($clnck($address($gettok($2-,1,32),2),%clnschn) != $null) { echo -a  $+ $clr(info) $+ *** C-Script will not kick clones of ops | halt }
  435.   set %count 0
  436.   :next
  437.   inc %count | if ($gettok($2-,%count,32) == $null) { goto end }
  438.   kick %clnschn $gettok($2-,%count,32) Clones
  439.   goto next
  440.   :end
  441. }
  442. ;Clone ban and kicking
  443. clnbk {
  444.   set %clnschn $1
  445.   if ($address($gettok($$2-,1,32),2) iswm $address($me,2)) { echo -a  $+ $clr(info) $+ *** C-Script will not kick/ban your own clones | halt }
  446.   if ($clnck($address($gettok($2-,1,32),2),%clnschn) != $null) { echo -a  $+ $clr(info) $+ *** C-Script will not kick/ban clones of ops | halt }
  447.   set %count 0
  448.   :next
  449.   inc %count | if ($gettok($2-,%count,32) == $null) { goto end }
  450.   mode %clnschn +b $address($gettok($2-,%count,32),2) | kick %clnschn $gettok($2-,%count,32) Clones
  451.   goto next
  452.   :end
  453. }
  454. ;Password check
  455. passcheck {
  456.   set %csmspass.1 $?="Enter your password"
  457.   if (%csmspass === %csmspass.1) { echo -a  $+ $clr(info) $+ *** Access granted... | goto done }
  458.   else { echo -a  $+ $clr(info) $+ *** Incorrect password | set %csmspass.2 $?="INCORRECT PASSWORD! Try again..." }
  459.   if (%csmspass === %csmspass.2) { echo -a  $+ $clr(info) $+ *** Access granted... | goto done }
  460.   else { echo  -a  $+ $clr(info) $+ *** Incorrect password | exit }
  461.   :done
  462.   .unset %csmspass.*
  463. }
  464. ;recent topics, channels, servers, and commands
  465. addrec {
  466.   set %tmp.syn $$1
  467.   if (%tmp.syn == server) { set %tmp.s $server $port }
  468.   elseif (%tmp.syn == topic) { set %tmp.s $2- }
  469.   elseif (%tmp.syn == chat) { set %tmp.s $2-4 }
  470.   elseif (%tmp.syn == away) { set %tmp.s $2- }
  471.   elseif (%tmp.syn == www) { set %tmp.s $2- }
  472.   else { set %tmp.s $2 }
  473.   if (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n1) { goto final }
  474.   elseif (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n2) { recmv %tmp.syn 2 }
  475.   elseif (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n3) { recmv %tmp.syn 3 }
  476.   elseif (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n4) { recmv %tmp.syn 4 }
  477.   elseif (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n5) { recmv %tmp.syn 5 }
  478.   elseif (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n6) { recmv %tmp.syn 6 }
  479.   elseif (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n7) { recmv %tmp.syn 7 }
  480.   elseif (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n8) { recmv %tmp.syn 8 }
  481.   elseif (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n9) { recmv %tmp.syn 9 }
  482.   elseif (%tmp.s == $readini -n sysfiles\recent.ini %tmp.syn n10) { recmv %tmp.syn 10 }
  483.   else {
  484.     set %tmp.1 1
  485.     :loop
  486.     if (%tmp.1 >= 10) goto end
  487.     if ($readini -n sysfiles\recent.ini %tmp.syn [ n [ $+ [ %tmp.1 ] ] ] != $null) set %recs. $+ [ %tmp.1 ] $readini -n sysfiles\recent.ini %tmp.syn [ n [ $+ [ %tmp.1 ] ] ]
  488.     else goto end
  489.     inc %tmp.1
  490.     goto loop
  491.     :end
  492.     remini sysfiles\recent.ini %tmp.syn
  493.     writeini sysfiles\recent.ini %tmp.syn n1 %tmp.s
  494.     set %tmp.1 2
  495.     set %tmp.2 1
  496.     :loop2a
  497.     if (%tmp.1 >= 10) { goto end2 }
  498.     set %tmp.a [ %recs. [ $+ [ %tmp.2 ] ] ]
  499.     if (%tmp.a != $null) writeini sysfiles\recent.ini %tmp.syn [ n [ $+ [ %tmp.1 ] ] ] [ %recs. [ $+ [ %tmp.2 ] ] ]
  500.     else { goto end2 }
  501.     inc %tmp.1
  502.     inc %tmp.2
  503.     goto loop2a
  504.     :end2
  505.   }
  506.   :final
  507.   unset %recs.*
  508. }
  509. recmv {
  510.   set %tmp.syn $$1
  511.   set %tmp.syn2 [ n [ $+ [ $$2 ] ] ]
  512.   set %tmp.recsn $readini -n sysfiles\recent.ini %tmp.syn %tmp.syn2
  513.   set %tmp.1 $$2
  514.   set %tmp.2 0
  515.   :loop
  516.   inc %tmp.2
  517.   if (%tmp.2 >= %tmp.1) goto end
  518.   set %recs. $+ %tmp.2 $readini -n sysfiles\recent.ini %tmp.syn [ n [ $+ [ %tmp.2 ] ] ]
  519.   goto loop
  520.   :end
  521.   writeini sysfiles\recent.ini %tmp.syn n1 %tmp.recsn
  522.   set %tmp.1 $$2
  523.   set %tmp.2 0
  524.   set %tmp.3 1
  525.   :loop2
  526.   inc %tmp.2
  527.   inc %tmp.3
  528.   if (%tmp.2 >= %tmp.1) goto end2
  529.   writeini sysfiles\recent.ini %tmp.syn [ n [ $+ [ %tmp.3 ] ] ] [ %recs. [ $+ [ %tmp.2 ] ] ]
  530.   goto loop2
  531.   :end2
  532.   unset %recs.*
  533. }
  534. ;C-Script program group maker
  535. win3inst {
  536.   set %tmp.drv c:\windows\progman.ini
  537.   if ($exists(%tmp.drv) == $false) { set %tmp.drv d:\windows\progman.ini }
  538.   else { goto start }
  539.   if ($exists(%tmp.drv) == $false) { echo -a  $+ $clr(info) $+ Unable to create icons for C-Script | halt }
  540.   else { goto start }
  541.   :start
  542.   set %tmp 1
  543.   :loop
  544.   set %tmp2 $readini -n %tmp.drv Groups [ Group [ $+ [ %tmp ] ] ]
  545.   if (%tmp2 == CS16.grp) { halt }
  546.   if (%tmp2 != $null) { inc %tmp | goto loop }
  547.   else { writeini %tmp.drv Groups [ Group [ $+ [ %tmp ] ] ] $mircdirCS16.grp }
  548. }
  549.